TimesTenからのSQL問合せの結果Oracleで発生するエラーは、Oracle Call Interface(OCI)を通じてOracleによってレポートされます。通常、OCIのエラーおよび警告は、TimesTenでは5107エラーとして次の形式でレポートされます。
5107: Oracle(OCI) Oracle_ErrorID in OCI_Call: Oracle Error Message
ここで、Oracle_ErrorIDはOracleエラー・メッセージのID、OCI_Callはエラーが発生したOCIルーチン、Oracle Error MessageはOracleによって生成されたエラー関する記述です。
ORA-01466などのOracleデータベース・サーバーのメッセージは、次のようにレポートされる場合があります。
5107: Oracle(OCI) error in OCIStmtExecute():
ORA-01466: データを読み込めません - 表定義が変更されました
The command failed.
PLS-00201などのOracle PL/SQLメッセージは、次のようにレポートされる場合があります。
5107: Oracle(OCI) error in OCIStmtExecute():
ORA-06550: 行 1、列 18
PLS-00201: 識別子DBMS_FLASHBACKを宣言してください。
ORA-06550: 行 1、列 7
PL/SQL: Statement ignored rc = -1
詳細は、『Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド』のCache Connect to Oracleのトラブルシューティングに関する説明を参照してください。
AWTキャッシュ・グループを使用している場合、Oracleデータベースで発生したエラーおよび警告はアプリケーションに通知されません。かわりに、変更をOracleに適用している間に発生したすべての挿入、更新およびエラー削除は、データ・ストア・ディレクトリにあるエラー・ファイルに次の名前で保存されます。
DatastoreName.awterr
awterr
ファイルのエラー・メッセージの書式は、レプリケーションでの競合およびトランザクション・エラーに対して生成されるエラー・メッセージとほぼ同じです(例3.25を参照)。
注意: | Oracleによって生成されたエラーおよび警告は、TimesTenでコミットが行われた後に、awterr エラー・ファイルでレポートされる場合があります。 |
キャッシュ・グループに対して行われた更新がOracleに伝播されるときに制約違反が発生した場合、awterr
ファイル内のエラーは次のようになります。
Error occurred 14:48:55 on 03-22-2004
Datastore: c:\temp\cgDSN
Oracle Id: system1
Transmitting name: cgDSN
Error message:
TT5210: Oracle unique constraint violation error in OCIStmtExecute(): ORA-00001: unique constraint (GUSER.SYS_C00357240) violated rc = -1 -- file "bdbTblH.c", lineno 1205, procedure "ttBDbStmtForce()"
TT5025: Commit failure in Oracle. Transaction must be rolled back in TimesTen. -- file "bdbConnect.c", lineno 885, procedure "ttBDbXact()"
Operation that caused the error:
Insert into table TESTUSER.T1 <9,1000>
Failed transaction:
Insert into table TESTUSER.T1 <9, 1000>
End of failed transaction
TimesTenによってOracleに配置されたオブジェクトが削除された場合、awterr
ファイル内のエラーは次のようになります。
May 04 18:12:36 HOST1 TimesTen Replication 6.0[2136]:
[Err ] DEFAULT:meta.c(639):
TT16062: Failed to compile command:
select p.commit_timestamp, p.commit_seqnum, p.protocol from owner1.TT_02_REPPEERS p where p.replication_name = :rname and p.replication_owner = :rowner and p.tt_store_id = :oid and p.subscriber_id = :sid
May 04 18:12:36 HOST1 TimesTen Replication 6.0[2136]:
[Err ] DEFAULT:meta.c(639):
TT5221: TT5221: Oracle syntax error in OCIStmtExecute():
ORA-00942: 表またはビューが存在しません。rc = -1 -- file "bdbStmt.c", lineno 1041, procedure "getOraOutTypesNLengths()"
この例では、TT_02_REPPEERS
表は存在しません。このエラーをリカバリするには、次の手順を実行します。